// src/types/device.ts
export interface ApiResponse<T> {
    status: number;
    msg: string;
    data: T;
}

export interface Banner {
    id: number;
    name: string;
    path: string;
    image: string;
    is_tab: boolean;
}

export interface BannerResponse {
    status: number;
    msg: string;
    data: Banner[];
}

export interface ProductSimpleResponse {
    id: number;
    store_name: string;
    image: string;
    gold: number;
    give_integral: number;
    bind_device_num: number;
    device_ids: string;
    is_floors: number;
    floors_sill: number;
    floors_num: number;
}

export interface ProductListResponse {
    total: number;
    per_page: number;
    current_page: number;
    last_page: number;
    data: ProductSimpleResponse[];
}

export interface ProductInfo {
    id: number;
    image: string;
    store_name: string;
    cate_id: number;
    gold: number;
    postage: string;
    sort: number;
    sales: number;
    stock: number;
    is_show: number;
    add_time: number;
    is_good: number;
    is_postage: number;
    is_del: number;
    give_integral: number;
    temp_id: number;
    bind_device_num: number;
    device_ids: string;
    gateway: string | null;
    is_floors: number;
    floors_sill: number;
    floors_num: number;
    remark: string;
    description: string;
}


export interface Advert {
    id: number;
    title: string;
    image: string;
    path: string;
    is_tab: boolean;
}


export interface DeviceResponse {
    device_info: DeviceInfo;
    monitor_list: Monitor[];
    product_info: ProductInfo;
    group_user_list: any[];
    group_user_num: number;
    subscribe_num: number;
    now_money: number;
    is_current_gamer: number;
    current_time: number;
}


export interface Monitor {
    id: number;
    device_id: number;
    name: string;
    monitor_code: string;
    channelNo: string;
    monitor_url: string;
    live_url: string;
    type: number;
    state: number;
    version: string;
    sync_time: number;
    add_time: number;
    is_del: number;
}

export interface DeviceInfo {
    id: number;
    name: string;
    device_code: string;
    state: number;
    gateway: string;
    sync_time: number;
    product_id: string;
    add_time: number;
    current_gamer_uid: number;
    last_grab_id: number;
    game_start_time: number;
    game_end_time: number;
    duration: number;
    user_grab_num: number;
    is_alone: number;
    is_new_user_grab: number;
    is_del: number;
    instruct: string;
}


export interface UserInfo {
    uid: number;
    user_sn: string;
    real_name: string;
    mark: string;
    nickname: string;
    avatar: string;
    phone: string;
    add_time: number;
    last_time: number;
    now_money: number;
    brokerage_price: string;
    integral: number;
    total_brokerage: string;
    recharge_amount: string;
    status: number;
    spread_uid: number;
    spread_time: number;
    ancestor_spread_uid: number;
    user_type: string;
    is_promoter: number;
    grab_count: number;
    spread_count: number;
    clean_time: number;
    invite_code: string;
    vip_expire_time: number;
    adminid: number;
    login_type: string;
    is_logout: number;
    logout_time: number;
    is_first_login: number;
    is_open_music: number;
    is_teen: number;
    teen_pwd: string;
    group: number;
    is_zhubo: number;
    union_id: number;
    douyin_id: null;
    is_vip: number;
    brokerage_func_status: string;
    coupon_num: number;
    grab_prize_num: number;
    is_show_member: string;
}



export interface Recharge {
    is_teen: number;
    recharge_quota: RechargeQuota[];
    recharge_attention: string[];
}

export interface RechargeQuota {
    id: number;
    price: string;
    coin: string;
    give_coin: string;
    productid: string;
}

export interface RechargeCoupons {
    id: number;
    cid: number;
    uid: number;
    coupon_title: string;
    coupon_price: string;
    use_min_price: string;
    add_time: number;
    end_time: number;
    use_time: number;
    type: string;
    status: number;
    is_fail: number;
}


export interface UserMenuList {
    id: number;
    name: string;
    url: string;
    icon: string;
    isShow: boolean;
}
